{\rtf0\ansi{\fonttbl\f0\fmodern Courier;\f1\ftech Symbol;}
\paperw11640
\paperh15800
\margl120
\margr120
\pard\tx520\tx1060\tx1600\tx2120\tx2660\tx3200\tx3720\tx4260\tx4800\tx5320\f0\b0\i0\ulnone\fs24\fc0\cf0 //ппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппп\
//
\i 	
\b FILENAME
\b0 :	
\b\i0 eText.RichText.m\

\b0 //
\i 	
\b SUMMARY
\b0 :	
\b\i0 Implementation of RichText markup formats of eText (RTF,ETF)
\b0 \
//	
\b\i CATEGORY
\b0 :
\i0 	
\b RichText
\b0 \
//	
\b\i PROTOCOLS
\b0 :
\i0 	
\b <ETFDSupport>
\b0 \
//	
\b\i INTERFACE
\b0 :
\i0 	
\b None
\b0 \
//	
\b\i AUTHOR
\b0 :		
\b\i0 Rohit Khare
\b0 \
//	
\b\i COPYRIGHT
\b0 :	
\f1\i0 с
\f0\b 1993,94 California Institure of Technology, eText Project\

\b0 //ппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппп\
//	
\b\i Implementation Comments
\b0\i0 \
//		These methods have the least visible controls; they are supplicants\
//	at the feet of the mercurial god of TeXT.\
//ппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппп\
//	
\b\i History
\b0\i0 \
//	10/17/94:	
\b Cleaned up for eText5.
\b0 \
//	08/05/94:	
\b Completely Rearchitected for 5.0. RK
\b0 \
//ппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппп\
//	
\b Imported Interfaces
\b0 \
//\
	#import "
\b eText.RichText.h
\b0 "\
\

\i @implementation eText(RichText)\

\i0 //ппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппп\
//	
\b Path Operators\

\b0 //\

- 
\b readRTFfromPath
\b0 :(const char *)path \{\
	NXStream *memstream;\
	\
	
\b memstream
\b0  = 
\b NXMapFile
\b0 (
\b path
\b0 , NX_READONLY);\
	if (memstream)\{\
		[self 
\b readRTF
\b0 : 
\b memstream
\b0 ];\
		
\b NXCloseMemory
\b0 (
\b memstream
\b0 , NX_FREEBUFFER);\
	\} else\
		return 
\b nil
\b0 ;\
	return self;\
\}\
- 
\b writeRTFtoPath
\b0 :(const char *)path \{\
	NXStream *memstream;\
	\
	
\b memstream
\b0  = 
\b NXOpenMemory
\b0 (
\b NULL
\b0 , 0, NX_WRITEONLY);\
	if (memstream) \{\
		[self 
\b writeRTF
\b0 :
\b memstream
\b0 ];\
		
\b NXSaveToFile
\b0 (memstream, 
\b path
\b0 );\
		
\b NXCloseMemory
\b0 (
\b memstream
\b0 , NX_FREEBUFFER);\
	\} else\
		return 
\b nil
\b0 ;\
	return self;\
\}\
\
- 
\b readETFfromPath
\b0 :(const char *)path \{\
	NXStream *memstream;\
	\
	
\b memstream
\b0  = 
\b NXMapFile
\b0 (
\b path
\b0 , NX_READONLY);\
	if (memstream)\{\
		[self 
\b readETF
\b0 : 
\b memstream
\b0 ];\
		
\b NXCloseMemory
\b0 (
\b memstream
\b0 , NX_FREEBUFFER);\
	\} else\
		return 
\b nil
\b0 ;\
	return self;\
\}\
- 
\b writeETFtoPath
\b0 :(const char *)path \{\
	NXStream *memstream;\
	\
	
\b memstream
\b0  = 
\b NXOpenMemory
\b0 (
\b NULL
\b0 , 0, NX_WRITEONLY);\
	if (memstream) \{\
		[self 
\b writeETF
\b0 :
\b memstream
\b0 ];\
		
\b NXSaveToFile
\b0 (memstream, 
\b path
\b0 );\
		
\b NXCloseMemory
\b0 (
\b memstream
\b0 , NX_FREEBUFFER);\
	\} else\
		return 
\b nil
\b0 ;\
	return self;\
\}\
\
//ппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппппп\
//	
\b Stream Operators
\b0 \
//\

- 
\b readRTF
\b0 : (
\b NXStream
\b0  *)s \{\
	return [self 
\b readRichText
\b0 :s];\}\
- 
\b writeRTF
\b0 : (
\b NXStream
\b0  *)s \{\
	id retVal;\
	\
	
\b strictRTF
\b0  = 
\b YES
\b0 ;\
	retVal = [self 
\b writeRichText
\b0 :s];\
	
\b strictRTF
\b0  = 
\b NO
\b0 ;\
	return retVal;\
\}\
- 
\b writeRTF
\b0 : (
\b NXStream
\b0  *)s 
\b from
\b0 :(
\b int
\b0 ) start 
\b to
\b0 :(
\b int
\b0 ) end \{\
	id retVal;\
	\
	
\b strictRTF
\b0  = 
\b YES
\b0 ;\
	retVal = [self 
\b writeRichText
\b0 :s
 
\b from
\b0 :start 
\b to
\b0 :end];\
	
\b strictRTF
\b0  = 
\b NO
\b0 ;\
	return retVal;\
\}\
\
- 
\b readETF
\b0 : (
\b NXStream
\b0  *)s \{\
	return [self 
\b readRichText
\b0 :s];\}\
- 
\b writeETF
\b0 : (
\b NXStream
\b0  *)s \{\
	
\b strictRTF
\b0  = 
\b NO
\b0 ; return [self 
\b writeRichText
\b0 :s];\}\
- 
\b writeETF
\b0 : (
\b NXStream
\b0  *)s 
\b from
\b0 :(
\b int
\b0 ) start 
\b to
\b0 :(
\b int
\b0 ) end \{\
	
\b strictRTF
\b0  = 
\b NO
\b0 ;\
	return [self 
\b writeRichText
\b0 :s 
\b from
\b0 :start 
\b to
\b0 :end];\
\}\
\

\i @end
}
